#ifndef MODEL_H_
#define MODEL_H_

#include "precom.h"
#include "ModelStructs.h"
#include "3DSLoader.h"
#include "ObjLoader.h"

class Model
{
private:
	std::list<Mesh*>	m_meshes;
	GLuint				m_compiledModel;
	Box					m_box;

protected:
	void CalculateBBox();
public:
	Model();
	~Model();

	inline GLuint GetCompiledModelList() const { return m_compiledModel; }
	inline std::list<Mesh*>& GetMeshList() { return m_meshes; }
	inline Box GetBBox() const { 
		return m_box;
	}

	bool LoadModel(wchar_t* a_fileName);
	bool Load3DSFile(wchar_t* a_fileName);
	bool LoadObjFile(wchar_t* a_fileName);
	bool CompileModel();
	void Clear();
};

#endif //MODEL_H_